WD08Understanding.htmlTEXTMOSS'œÆ¥+Â:¥+Â:ÅÅQ§ WebDoubler - User's Guide
Version 1.1
User's Guide

Understanding How WebDoubler Works Previous | Next
Contents

This section is a technical overview of the operation of proxy servers in general and of WebDoubler in particular. While high-level details are covered here, it is beyond the scope of this User's Guide to cover every aspect of the HTTP specification, proxy operation, and WebDoubler plug-in development. For additional detail on these and other topics, see:

The WebDoubler page on Maxum's Web site

The World Wide Web Consortium Web site

The fine book "Web Proxy Servers", by Ari Luotonen

How Proxy Servers Work

Understanding the process of how a request is handled, from the browser to WebDoubler to the remote server and back again, is important for understanding how to best use and configure WebDoubler. In addition, understanding the process can help make troubleshooting specific problems much, much simpler. Often problems are not in the settings or operation of WebDoubler, but with the setup of the client browser, the remote server or a network problem. Knowing how it all works makes diagnosing the problem much easier.

In order to understand how WebDoubler works, one must first understand how people surf the Web without a proxy.

Surfing Normally

  1. The user clicks on a hyperlink or types a URL into their browser.
  2. The browser initiates a connection to the Web server specified in the request URL.
  3. The browser sends an HTTP request for the object specified by the URL.
  4. The Web server returns the object (along with an HTTP response) back to the browser
  5. The Web server closes the connection.
  6. The browser displays the object requested.

Proxy servers act as gateways between the client and the server, brokering traffic between the two. Here is how the sequence looks when the client connects through a proxy server:

Surfing Through A Basic Proxy

  1. The user clicks on a hyperlink or types a URL into their browser.
  2. The browser initiates a connection to the proxy server.
  3. The browser sends an HTTP request to the proxy for the object specified by the URL.
  4. The proxy server initiates a connection to the Web server specified in the request URL.
  5. The proxy server sends an HTTP request for the object specified by the URL to the Web server.
  6. The Web server returns the object (along with an HTTP response) back to the proxy.
  7. The proxy server returns the object (along with an HTTP response) back to the client.
  8. The Web server closes the connection to the proxy server.
  9. The proxy server closes the connection to the browser.
  10. The browser displays the object requested.

It would appear from the preceeding two sequences that all a proxy server does is introduce a lot of un-necessary steps into the process of surfing. One common use for a simple proxy as described above is to allow clients inside a firewall to connect to servers outside without allowing any connections to computers inside the firewall.

On a LAN with many clients, however, a proxy server can perform a number of other useful functions. It can cache objects that it has retrieved from remote servers, so when the same object is requested by another client it will be served directly by the proxy server instead of having to be fetched across the Internet. A proxy can also perform filtering, blocking requests for objects that are inappropriate or in some other way undesirable.

Surfing Through A Caching And Filtering Proxy Server

  1. The user clicks on a hyperlink or types a URL into their browser.
  2. The browser initiates a connection to the configured proxy server.
  3. The browser sends an HTTP request for the object specified by the URL.
  4. The proxy server reviews the request to determine if the browser is allowed to make that request, based on any filtering or ratings schemes that may be enabled.
  5. If the request is not acceptable an error message is returned.
  6. If the request is acceptable...
    1. The proxy server checks its internal cache of previously requested objects to see if it has a local copy of the object.
    2. If the object is found in the cache and the cached copy of the object is not too old, then the cached copy is returned.
    3. If the object is not in cache (or the cached copy is too old)...
      1. The proxy server initiates a connection to the Web server specified by the request URL.
      2. The proxy server requests the object specified by the URL.
      3. The Web server returns the object back to the proxy server.
      4. The Web server closes the connection to the proxy.
      5. If the returned object is cacheable, the caching proxy server will attempt to store a cached copy of it for potential future requests.
    4. The proxy server reviews the returned object to determine if the browser is allowed to see that object, based on any filtering or ratings schemes that may be enabled.
    5. If the content of the object is not acceptable an error message is returned.
    6. If the content of the object is acceptable, the proxy server sends the object to the browser.
  7. The proxy server closes the connection to the browser.
  8. The browser displays the object requested.

It should be noted that in some cases, several steps can be skipped or optimized. For example, if there is no filter defined for reviewing content received from remote Web servers, then the proxy server can begin returning the object to the browser even before all of the content has been received from the remote Web server. In fact, this is a very important optimization that WebDoubler does in fact support.

The primary advantages of a filtering and caching proxy server are:

The primary disadvantages of a proxy server are:

WebDoubler Specifics

WebDoubler behaves like any other proxy, but also features a number of unique elements. In particular, the WebDoubler software package includes two primary types of components.

The first component is what is called the WebDoubler "core". This consists of the WebDoubler application itself. In reality, the WebDoubler core is little more than a basic Web server with an advanced Application Programming Interface (API) that supports a robust plug-in architecture.

All other features of WebDoubler are implemented by "plug-ins". Plug-ins are programs that are dynamically loaded by the WebDoubler core to provide some function or service. For example, the "HTTP Client" plug-in gives WebDoubler the ability to retrieve objects from remote Web servers. The cache plug-in stores files on the local hard drive, when appropriate as they are downloaded, and serves them when the same object is later requested. For information on all of the plug-ins included, see the documentation for each plug-in, or visit the WebDoubler page on the Maxum Web site.

Plug-ins provide a number of benefits over a single monolithic application. First, if there is a component of WebDoubler that you don't want to take advantage of, you can completely remove it from your installation. For example, if you decide not to filter or block any Web requests, you can simply remove the PICS and Proxy Authentication plug-ins from the WebDoubler plug-ins folder. Doing so will free up RAM and simplify administration and management. Should you ever have problems with WebDoubler, removing components is also an effective way to troubleshoot errors, because it completely removes components from the potential list of problem sources.

Second, as updates to WebDoubler become available, you will be able to upgrade certain portions of WebDoubler without reinstalling the entire proxy server. For example, when the next generation of HTTP becomes defined and widely used, WebDoubler will be able to support it by replacing the HTTP Client plug-in.

Finally, and most importantly, WebDoubler is extensible, not only by Maxum but by third parties as well. Watch Maxum's Web site for information about new capabilities that can be added to your WebDoubler proxy server simply by dropping in new plug-in modules.


Copyright © 1999 Maxum Development Corporation
http://www.maxum.com/
Previous | Next
Contents
hhFGVÄsÇbQ Y É÷Ú¿sG1í.0Z†rWD08Understanding.htmlmltmllsstPartSIT!≤G洮 sù0M0!@5pU j`cÄT1 ÉÄÉÇ0t#XIpr¿ÉGY©Ù8 0ëP3±4pc√–"PJ04∞1$P[Ç`cW#e z0D∞/ L{B0aPX°PF0CGjKu†c20Ñ0VB0H MonacoÙΔ|¨†)Äâ NÙΔ|, ∫Ç, ∫Ç¥+¨˙èèR*chÅHHÿ(ˇ·ˇ‚˘FG(¸HHÿ(d'`êMonaco  Helvetica ConfidentialÄÄÄÄHhhFÙœî)ÄFMPSRBBSTÌˇˇÄˇˇLÙΔò